#include"mprpc.h"
#include"unistd.h"
#include"string"
#include"iostream"

Config Mprpc::_config;


//命令行格式
void ShowArgsHelp()
{
    std::cout << "format: command -i <configfile>"  << std::endl;
}

//初始化
void Mprpc::Init(int argc,char** argv)
{
    //解析命令行参数
    // -i 
    if(argc<2)
    {
        ShowArgsHelp();
        exit(EXIT_FAILURE);
    }
    char opt;
    std::string config_file;
    while((opt=getopt(argc,argv,"i:"))!=-1)
    {
        switch(opt)
        {
        //指定配置文件
        case 'i':
            config_file=optarg;
            break;
        //未知参数
        case '?':
            ShowArgsHelp();
            exit(EXIT_FAILURE);
            break;
        case ':':
            ShowArgsHelp();
            exit(EXIT_FAILURE);
            break;
        default:
            break;
        }
    }
    //加载配置文件
    _config.LoadConfigFile(config_file.c_str());
}


Mprpc& Mprpc::GetInstance()
{
    static Mprpc x;
    return x;
}

Config& Mprpc::GetConfig()
{
    return _config;
}

